package hl.fildir;

import java.io.*;

public class FileNew {

    public static void main(String[] args) throws IOException{

//        var ps = new PrintStream(new FileOutputStream("FileOutPutStream.txt"));
//        System.setOut(ps);// 创建 PrintStream 输出流 并 设置为 标准输出

        // 使用 list() 方法 列出 当前路径中的 文件名 和 目录名
        var file1 = new File(".");
        String[] fileList = file1.list();
        System.out.println("==== 当前路径下的 文件名 和 目录名 ====");
        for (var fileName : fileList) {
            System.out.println(fileName);
        }

        // 使用 list(参数) 方法 过滤文件，只打印 .java 结尾的文件 和 目录
        var file2 = new File(".");
        String[] nameList2 = file2.list( (dir, name) -> name.endsWith(".java") || new File(name).isDirectory() );
        System.out.println("==== 当前路径下的 以“.java”结尾的文件名 和 目录名 ====");
        for (var name : nameList2){
            System.out.println(name);
        }

        // 使用 listFiles() 方法 列出 当前路径中的 文件名 和 目录名
        var file4 = new File(".");
        File[] fileLists = file4.listFiles();
        System.out.println("==== 当前路径下的 文件名 和 目录名 (带 .\\) ====");
        for (var fileName : fileLists) {
            System.out.println(fileName);
        }

        // 使用 listRoots() 方法 列出 所有的 磁盘根路径
        File[] roots = File.listRoots();
        System.out.println("==== 系统的 所有 根路径名 ====");
        for (var root : roots){
            System.out.println(root);
        }
/*
        // 创建一个 aa.txt 文件
        var file5 = new File("aa.txt");
        //file5.createNewFile();
        //删除 aa.txt 文件
        if (file5.isFile())   // if (file5.exists())
            file5.delete();

        // 创建一个 bb 目录
        var file6 = new File("bb");
        //file6.mkdir();
        //删除 bb 目录
        if (file6.isDirectory())   // if (file6.exists())
            file6.delete();
*/

    }
}
